package temporadas;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

public class Jornada {

	private Integer numJornada;
	private List<Partido> partidos;
	
	public Jornada(String s) throws Exception{
		
		this.numJornada = numeroDeJornada(s);
		
		URL pagina = new URL(s);
		
		BufferedReader in = new BufferedReader(new InputStreamReader(pagina.openStream()));
	    String entrada;
	    
	    this.partidos = new ArrayList<Partido>();
	    
	    String datoLocal = "";
	    String datoVisitante = "";
	    String datoResul = "";
	    
	    while ((entrada = in.readLine())!= null){
	    	entrada = entrada.trim();//elimina los espacios en blanco
	    	if(entrada.startsWith("<td class=\"equipo1\"")){
		    	
	    		datoLocal = buscaCadena(entrada);
		    	
	    	}else if(entrada.startsWith("<td class=\"equipo2\"")){
	    		
	    		datoVisitante = buscaCadena(entrada);
	    		
	    			
	    	}else if(entrada.startsWith("<td class=\"rstd\"")){
	    		
	    		datoResul = buscaCadena(entrada);
	    		
	    	}
	    	if(datoLocal != "" && datoVisitante != "" && datoResul != ""){
	    		
	    		Partido p = new Partido(datoLocal,datoVisitante,datoResul,0);
	    		this.partidos.add(p);
	    		
	    		datoLocal = "";
	    		datoVisitante = "";
	    		datoResul = "";
	    	}
	    }
	    
	    //for(Partido part:partidos){
	    	//System.out.println(part);
	    //}
	    
	    in.close();
	}
	
	
	
	public Integer numeroDeJornada(String s){
		
		int i = s.lastIndexOf("jornada");
		
		String aux2 = s.substring(i+7);
		
		Integer resul = Integer.parseInt(aux2);
		
		return resul;
	}
	
	
	public Integer getNumJornada() {
		return numJornada;
	}

	public void setNumJornada(Integer numJornada) {
		this.numJornada = numJornada;
	}

	public List<Partido> getPartidos() {
		return partidos;
	}

	public void setPartidos(List<Partido> partidos) {
		this.partidos = partidos;
	}
	
	public String toString(){
		String s = "";
		
		s += "Numero de jornada: "+getNumJornada()+"\n";
		
		for(Partido p: this.getPartidos()){
			s += p.toString()+"\n";
		}
		
		return s;
	}
	
	public static String buscaCadena(String entrada){
		
		String resul;
		
		//localizamos el primera ocurrencia de cierre de la linea del html pasado para generar una subString
		int i = entrada.indexOf('>');
		
		if(entrada.charAt(i+1) != '<'){
			
			String aux = entrada.substring(i+1);
			
			
			int i2 = aux.indexOf('<');
			
			resul = aux.substring(0,i2);
			
		}else{
			resul=buscaCadena(entrada.substring(i+1));
			
		}
		return resul;
		
		
	}
	
	
}
